package control.mapa;

import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import comparadores.ComparadorIdRegionConInt;

import mapas.Mapa;
import mapas.Region;

import control.juego.ControladorSeleccion;

import vista.VistaMapa;
import vista.VistaRegion;

public class ControladorMouseRegion implements MouseListener {

	private Mapa mapa;
	private VistaMapa vistaMapa;
	
	public ControladorMouseRegion(Mapa mapa, VistaMapa vm){
		super();
		this.mapa = mapa;
		this.vistaMapa = vm;
	}
	public void mouseClicked(MouseEvent arg0) {
		Point punto = new Point(arg0.getX(), arg0.getY());
		VistaRegion vReg = this.vistaMapa.getPoligonoEn(punto);
		int id = -1;
		if (vReg != null)
			id = vReg.getId();	
		Region reg = mapa.buscarRegion(id, new ComparadorIdRegionConInt());
		if (reg!= null){
			if(arg0.getButton() == MouseEvent.BUTTON1)
				ControladorSeleccion.GetInstance().setSlot1(reg);
			else
				//Eso lo hago porque a veces entra con 0, supongo que es un tema de java
				if(arg0.getButton() == MouseEvent.BUTTON3) 
					ControladorSeleccion.GetInstance().setSlot2(reg);
		}else
			ControladorSeleccion.GetInstance().limpiarSeleccion();
	}

	public void mouseEntered(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	public void mouseExited(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

	public void mousePressed(MouseEvent arg0) {

	}

	public void mouseReleased(MouseEvent arg0) {
		// TODO Auto-generated method stub

	}

}
